MBA Data Science e Statistic BSBr - Estatística Descritiva e Construção de Dashboards

Cândido Silva

21/12/2021

Projeto Final

Apresentação

O projeto final destina - se a realização da atividade de conclusão da disciplina Estatistica Descritiva e construção de dashboards e consiste na análise estatistica da base dos microdados do Exame Nacional de Desempenho dos Estudantes - ENADE 2017, especificamente, sobre o curso de Educação Física (Licenciatura).

O exame avalia o conhecimento dos concluintes dos cursos de graduação acerca dos conteúdos programáticos previstos na grade curricular dos cursos, além do desenvolvimento de competências e habilidades necessárias ao aprofundamento da formação geral e profissional, e o nível de atualização dos estudantes com relação à realidade brasileira e mundial.

Análise Descritiva

A base de dados do ENADE 2017 consiste em um arquivo .txt com 537.436 registros (observações) e 150 colunas (variáveis).

A proposta aqui será isolar as observações sobre o curso escolhido para a análise, em um dataset menor e realizar as análises estatísticas necessárias para uma melhor compreenção dos dados.

Para efeito das análises sobre as notas, foi utilizado a MEDIANA, com o intuíto de redurzir os efeitos de possiveis outliers presentes no dataset.

Carregando os Pacotes

Criando um vetor com o nome de todos os pacotes que utilizarei para a análise e instalando cada um deles:

vetor_pacotes=c("readr",
                "ggplot2",
                "plotly",
                "e1071",
                "dplyr",
                "Hmisc",
                "kableExtra",
                "DescTools",
                "esquisse",
                "gridExtra",
                "e1071",
                "devtools"
)

carregados = lapply(vetor_pacotes, 
       require,
       character.only = TRUE)

Importando o arquivo

Armazenando o arquivo na variável dbEnade2017 e, em seguida, selecionando apenas as observações relativas ao curso em análise:

dbEnade2017 = read_csv2("MICRODADOS_ENADE_2017.txt")

dbEnade2017_EdFisica <<- dbEnade2017 %>% filter(CO_GRUPO == '3502')

dim(dbEnade2017_EdFisica)
## [1] 34763   150

Os comandos acima retornaram um novo dataset com 34.763 registros referentes apenas ao curso de Licenciatura em Educação Física.

Selecionando e Transformando

Abaixo, uma pequena amostra do novo dataset:

head(dbEnade2017_EdFisica)
## # A tibble: 6 x 150
##   NU_ANO CO_IES CO_CATEGAD CO_ORGACAD CO_GRUPO CO_CURSO CO_MODALIDADE
##    <dbl>  <dbl>      <dbl>      <dbl>    <dbl>    <dbl>         <dbl>
## 1   2017      1          1      10028     3502       19             1
## 2   2017      1          1      10028     3502       19             1
## 3   2017      1          1      10028     3502       19             1
## 4   2017      1          1      10028     3502       19             1
## 5   2017      1          1      10028     3502       19             1
## 6   2017      1          1      10028     3502       19             1
## # ... with 143 more variables: CO_MUNIC_CURSO <dbl>, CO_UF_CURSO <dbl>,
## #   CO_REGIAO_CURSO <dbl>, NU_IDADE <dbl>, TP_SEXO <chr>, ANO_FIM_EM <dbl>,
## #   ANO_IN_GRAD <dbl>, CO_TURNO_GRADUACAO <dbl>, TP_INSCRICAO_ADM <dbl>,
## #   TP_INSCRICAO <dbl>, NU_ITEM_OFG <dbl>, NU_ITEM_OFG_Z <dbl>,
## #   NU_ITEM_OFG_X <dbl>, NU_ITEM_OFG_N <dbl>, NU_ITEM_OCE <dbl>,
## #   NU_ITEM_OCE_Z <dbl>, NU_ITEM_OCE_X <dbl>, NU_ITEM_OCE_N <dbl>,
## #   DS_VT_GAB_OFG_ORIG <chr>, DS_VT_GAB_OFG_FIN <chr>, ...

Dessa forma que os dados se apresentam, não há como realizar uma análise que resulte em bons resultados.

É preciso selecionar as colunas para analisar e, também, realizar algumas transformações:

dbEnade2017_EdFisica_Filtrado = dbEnade2017_EdFisica %>% 
    dplyr:: select (CO_CATEGAD, 
                    CO_REGIAO_CURSO, 
                    NU_IDADE, 
                    TP_SEXO, 
                    CO_TURNO_GRADUACAO, 
                    NT_GER, 
                    QE_I01, 
                    QE_I02 
                    )

As variáveis escolhidas estão descritas na tabela abaixo:

Coluna Descrição Classificação
CO_CATEGAD Categoria da IES Qualitativa nominal
CO_REGIAO_CURSO Região geográfica do curso Qualitativa nominal
NU_IDADE Idade do inscrito em 26/11/2017 Quantitativa discreta
TP_SEXO Tipo de sexo Quantitativa nominal
CO_TURNO_GRADUACAO Turno de graduação Qualitativa ordinal
NT_GER Nota bruta da prova Quantitativa continua
QE_I01 Estado civil Qualitativa nominal
QE_I02 Cor ou raça Qualitativa nominal

A seguir, as transformações necessárias para um melhor entendimento dos nossos dados e melhorar nossas análises:

dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>% 
  mutate(CAT_IES = case_when( CO_CATEGAD == 1 ~ "Pública Federal",
                             CO_CATEGAD == 2 ~ "Pública Estadual",
                             CO_CATEGAD == 3 ~ "Pública Municipal",
                             CO_CATEGAD == 4 ~ "Privada com fins lucrativos",
                             CO_CATEGAD == 5 ~ "Privada sem fins lucrativos",
                             CO_CATEGAD == 7 ~ "Especial"))

dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>% 
  mutate(REGIAO = case_when( CO_REGIAO_CURSO == 1 ~ "Norte",
                             CO_REGIAO_CURSO == 2 ~ "Nordeste",
                             CO_REGIAO_CURSO == 3 ~ "Sudeste",
                             CO_REGIAO_CURSO == 4 ~ "Sul",
                             CO_REGIAO_CURSO == 5 ~ "Centro-Oeste"))

dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>% 
  mutate (SEXO = case_when ( TP_SEXO == "F" ~ "Feminino",
                             TP_SEXO == "M" ~ "Masculino"))

dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>%
  mutate (TURNO_GRAD = case_when ( CO_TURNO_GRADUACAO == 1 ~ "Matutino",
                                  CO_TURNO_GRADUACAO == 2 ~ "Vespertino",
                                  CO_TURNO_GRADUACAO == 3 ~ "Integral",
                                  CO_TURNO_GRADUACAO == 4 ~ "Noturno"))


dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>%
  mutate(ESTADO_CIVIL = case_when ( QE_I01 == "A" ~ "Solteito(a)",
                                   QE_I01 == "B" ~ "Casado(a)",
                                   QE_I01 == "C" ~ "Separado/divorciado(a)",
                                   QE_I01 == "D" ~ "Viúvo(a)",
                                   QE_I01 == "E" ~ "Outro"))

dbEnade2017_EdFisica_Filtrado <<- dbEnade2017_EdFisica_Filtrado %>%
  mutate (RACA = case_when( QE_I02 == "A" ~ "Branca",
                            QE_I02 == "B" ~ "Preta",
                            QE_I02 == "C" ~ "Amarela",
                            QE_I02 == "D" ~ "Parda",
                            QE_I02 == "E" ~ "Indígena",
                            QE_I02 == "F" ~ "NãoDeclarou"))

Realizando as análises

Após o processo de seleção e transformação do nosso dataset, verifica - se sua situação atual com as novas colunas criadas, conforme abaixo:

head(dbEnade2017_EdFisica_Filtrado)
## # A tibble: 6 x 14
##   CO_CATEGAD CO_REGIAO_CURSO NU_IDADE TP_SEXO CO_TURNO_GRADUACAO NT_GER QE_I01
##        <dbl>           <dbl>    <dbl> <chr>                <dbl>  <dbl> <chr> 
## 1          1               5       25 F                        1   57   A     
## 2          1               5       21 F                        1   49.9 A     
## 3          1               5       39 M                        1   52.6 B     
## 4          1               5       54 F                        1   42.7 C     
## 5          1               5       22 F                        1   37.6 A     
## 6          1               5       24 F                        1   46.1 A     
## # ... with 7 more variables: QE_I02 <chr>, CAT_IES <chr>, REGIAO <chr>,
## #   SEXO <chr>, TURNO_GRAD <chr>, ESTADO_CIVIL <chr>, RACA <chr>

Para este trabalho, todos os registros sem informação em alguma coluna serão retirados. É preciso analisar qual o impacto da retirada desses valores, em cada projeto. Neste trabalho, não teremos perdas substanciais que possam afetar nossa análise.

Visão geral da quantidade de registro nulos(ausentes)(NA), em cada uma das variáveis:

totalNA = dbEnade2017_EdFisica_Filtrado %>%
        select (everything()) %>%
        summarise_all(list(~sum(is.na(.))))

#Total de registros e colunas
dim(dbEnade2017_EdFisica_Filtrado) 
## [1] 34763    14
totalNA %>% kbl %>% kable_material_dark(full_width = F)
CO_CATEGAD CO_REGIAO_CURSO NU_IDADE TP_SEXO CO_TURNO_GRADUACAO NT_GER QE_I01 QE_I02 CAT_IES REGIAO SEXO TURNO_GRAD ESTADO_CIVIL RACA
0 0 0 0 48 6933 5733 5733 0 0 0 48 5733 5733

Realizando a retirada dos resgitros NA e exibindo a situação atual das variáveis. Foram retirados 7.525 registros, reduzindo o dataset para 27.238 registros.

dbEnade2017_EdFisica_Filtrado_sem_NA = dbEnade2017_EdFisica_Filtrado %>% na.omit()

#Total de registros e colunas
dim(dbEnade2017_EdFisica_Filtrado_sem_NA)
## [1] 27238    14
resumo = dbEnade2017_EdFisica_Filtrado_sem_NA %>%
        select(everything()) %>%
        summarise_all(list(~sum(is.na(.))))

resumo %>% kbl %>% kable_material_dark(full_width = F)
CO_CATEGAD CO_REGIAO_CURSO NU_IDADE TP_SEXO CO_TURNO_GRADUACAO NT_GER QE_I01 QE_I02 CAT_IES REGIAO SEXO TURNO_GRAD ESTADO_CIVIL RACA
0 0 0 0 0 0 0 0 0 0 0 0 0 0

Após a limpeza dos dados, vamos iniciar com a observação do gênero dos concluintes. Percebe - se que a maioria é do sexo masculino, representando 57,1% do total geral de registros, com quase 4.000 alunos a mais que alunas.

#Resumindo a vaiável - GÊNERO
dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select(SEXO, NT_GER) %>%
  group_by(SEXO) %>%
  summarise(INSCRITOS = n(),
            MEDIA = mean(NT_GER),
            MEDIANA = median(NT_GER)) %>%
  arrange(desc(INSCRITOS)) 
## # A tibble: 2 x 4
##   SEXO      INSCRITOS MEDIA MEDIANA
##   <chr>         <int> <dbl>   <dbl>
## 1 Masculino     15557  42.7    42.4
## 2 Feminino      11681  43.1    43
# Gráfico de barra - GÊNERO
grafGenero = ggplot(dbEnade2017_EdFisica_Filtrado_sem_NA, aes(x = as.factor(dbEnade2017_EdFisica_Filtrado_sem_NA$SEXO))) +
  geom_bar(color = "black",
           fill = c(2,4)) +
  ggtitle("Gênero dos alunos") +
  xlab("")+
  ylab("")

ggplotly(grafGenero)

Geograficamente falando, a região com o maior número de participantes foi a Sudeste, com 45,6%, seguida pela região Sul e Nordeste.

dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select(REGIAO,NT_GER) %>%
  group_by(REGIAO) %>%
  summarise(INSCRITOS = n(),
            MEDIA = mean(NT_GER),
            MEDIANA = median(NT_GER)) %>%
arrange(desc(INSCRITOS))
## # A tibble: 5 x 4
##   REGIAO       INSCRITOS MEDIA MEDIANA
##   <chr>            <int> <dbl>   <dbl>
## 1 Sudeste          12416  43.4    43.2
## 2 Sul               6535  41.4    41.2
## 3 Nordeste          4411  44.0    44  
## 4 Norte             1952  41.8    41.5
## 5 Centro-Oeste      1924  43.6    43
grafRegiao = ggplot(dbEnade2017_EdFisica_Filtrado_sem_NA, aes(y = as.factor(dbEnade2017_EdFisica_Filtrado_sem_NA$REGIAO)))+
  geom_bar(color = "black",
           fill = c(2,7,3,4,8)) +
  ggtitle("Região geográfica dos alunos") +
  xlab("") +
  ylab("")

ggplotly(grafRegiao)

Acerca do estado civil dos alunos, veririca - se a predominancia dos solteiros que representam 76,6% do total considerado. Os casados e separados ou divorciados juntos somam um pouco mais de 5.000 alunos, quase 20% do total analisado.

dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select(ESTADO_CIVIL, NT_GER ) %>%
  group_by(ESTADO_CIVIL) %>%
  summarise(INSCRITOS = n(),
             MEDIA = mean(NT_GER),
            MEDIANA = median(NT_GER)) %>%
  arrange(desc(INSCRITOS))
## # A tibble: 5 x 4
##   ESTADO_CIVIL           INSCRITOS MEDIA MEDIANA
##   <chr>                      <int> <dbl>   <dbl>
## 1 Solteito(a)                20859  43.1    42.9
## 2 Casado(a)                   4641  41.9    41.4
## 3 Outro                        958  43.3    43.2
## 4 Separado/divorciado(a)       703  43.2    43.3
## 5 Viúvo(a)                      77  40.0    38.2
# Gráfico - Estado Cívil
grafEstCivil = ggplot(dbEnade2017_EdFisica_Filtrado_sem_NA, aes(y = as.factor(dbEnade2017_EdFisica_Filtrado_sem_NA$ESTADO_CIVIL))) +
         geom_bar(color = 'black',
                  fill = c(7,2,3,4,1)) +
         ggtitle("Estado civil dos alunos") +
         xlab("")+
         ylab("")

ggplotly(grafEstCivil)

Quando observamos os dados à luz da raça(cor) dos alunos constatamos que a grande maioria se declarou BRANCA, seguida de PARDA e PRETA, conforme quadro abaixo.

dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select (RACA, NT_GER) %>%
  group_by(RACA) %>%
  summarise(INSCRITOS = n(),
            MEDIA = mean(NT_GER),
            MEDIANA = median(NT_GER)) %>%
  arrange(desc(INSCRITOS))
## # A tibble: 6 x 4
##   RACA        INSCRITOS MEDIA MEDIANA
##   <chr>           <int> <dbl>   <dbl>
## 1 Branca          12121  43.9    43.7
## 2 Parda           10400  42.0    41.7
## 3 Preta            3482  42.4    42.2
## 4 Amarela           571  43.4    42.7
## 5 NãoDeclarou       498  43.4    43.3
## 6 Indígena          166  40.5    39
grafRaca = ggplot(dbEnade2017_EdFisica_Filtrado_sem_NA, aes(y = as.factor(dbEnade2017_EdFisica_Filtrado_sem_NA$RACA))) +
  geom_bar(color = "black",
           fill = c(7,2,3,8,5,1)) +
  ggtitle("Raça(cor) dos alunos")+
  xlab("")+
  ylab("")

ggplotly(grafRaca)

Sobre a idade dos alunos, um breve resumo nos mostra a menor e a maior idade encontrada. Além, de constatarmos que 50% (mediana) dos alunos tem idade até 25 anos e que 75% (3ºquartil) possuem idade até 30 anos.

summary(dbEnade2017_EdFisica_Filtrado_sem_NA$NU_IDADE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   22.00   25.00   26.82   30.00   87.00

O histograma abaixo, revela uma distribuição assimétrica possitiva e pouco dispersa, com a formação de uma longa calda à direita, confirmando graficamente, o que nos mostrou a tabela, acima.

dados <<- dbEnade2017_EdFisica_Filtrado_sem_NA

g_hist_densidade = ggplot(dados, aes(x=NU_IDADE)) + 
  geom_histogram(color = "black",fill="lightblue",bins =20,aes(y=(..count..)/sum(..count..)))+
  geom_density(col=2,size = 1, aes(y = 27 * (..count..)/sum(..count..))) +
  ggtitle("Histograma e curva de densidade da IDADE dos alunos")+
  xlab("Idade dos alunos") +
  ylab("Frequência relativa")

ggplotly(g_hist_densidade)

Observando a tabela abaixo com as principais medidas de posição, verifica - se que a média de idade é de quase 27 anos e que a maioria (moda) tem idade de 22 anos. O desvio padrão revela pouca dispersão entre os dados e a curtose de quase 3 pontos indica uma distribuição leptocúrtica.

dbEnade2017_EdFisica_Filtrado_sem_NA %>% 
  select(NU_IDADE) %>% 
  summarise(  Quantidade=n(),
              media = mean(NU_IDADE),
              Mediana = median(NU_IDADE),
              Moda=Mode(NU_IDADE),
              DesvioPadrao=sd(NU_IDADE),
              Coef.Var=sd(NU_IDADE)/media*100,
              Assimetria=skewness(NU_IDADE),
              Curtose=kurtosis(NU_IDADE)
  ) %>% 
  kbl %>% 
  kable_material_dark(full_width = F)
Quantidade media Mediana Moda DesvioPadrao Coef.Var Assimetria Curtose
27238 26.81772 25 22 6.706061 25.00608 1.54625 2.823016

Vamos checar qual o comportamento das notas dos alunos. O resumo abaixo revela que metade dos alunos ficou com nota abaixo da média, que foi de 42,92. E que 75%, obtiveram uma nota até 52,40.

summary(dbEnade2017_EdFisica_Filtrado_sem_NA$NT_GER)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   33.10   42.70   42.92   52.40   91.50

Visualizando a distribuição das notas no gráfico abaixo, podemos identificar outros comportamentos. Conforme dito, a maior concentração das notas compreende o centro do gráfico. Existe uma assimetria positiva, quase nula, vez que a média é maior que a mediana.

g_hist_densidade = ggplot(dados, aes (x = NT_GER))+
  
  geom_histogram(color = "black",fill="lightblue",bins = 20,aes(y=(..count..)/sum(..count..)))+
  geom_density(col=2,size = 1, aes(y = 27 * (..count..)/sum(..count..))) +
  ggtitle("Histograma e curva de densidade da NOTA dos alunos")+
  xlab("Nota dos alunos") +
  ylab("Frequência relativa")

ggplotly(g_hist_densidade)

Existe também uma variação consideravel entre as notas registradas, indicando uma maior dispersação das mesmas, desvio padrão e variância elevados e uma distribuição platicúrtica.

dbEnade2017_EdFisica_Filtrado_sem_NA %>% 
  select(NT_GER) %>% 
  summarise(  Quantidade=n(),
              media = mean(NT_GER),
              Mediana = median(NT_GER),
              Moda=Mode(NT_GER),
              DesvioPadrao=sd(NT_GER),
              Coef.Var=sd(NT_GER)/media*100,
              Assimetria=skewness(NT_GER),
              Curtose=kurtosis(NT_GER)
  ) %>% 
  
  kbl %>% 
  kable_material_dark(full_width = F)
Quantidade media Mediana Moda DesvioPadrao Coef.Var Assimetria Curtose
27238 42.91691 42.7 38 13.66982 31.85182 0.0856054 -0.274533

Vamos analisar o comportamento da relação de algumas variáveis.

Para tanto, vamos ver a relação das notas com a raça dos alunos, com o estado civil e a região geográfica deles.

dbRacaSexoNota = dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select(NT_GER, RACA, SEXO) %>%
  group_by(SEXO, RACA) %>%
  summarise(QUANTIDADE = n(),
            MEDIA = mean(NT_GER, na.rm = T),
            MEDIANA = median(NT_GER)
            ) %>%
  arrange(desc(MEDIANA))
  
dbRacaSexoNota %>% kbl %>% kable_material_dark(full_width = F)
SEXO RACA QUANTIDADE MEDIA MEDIANA
Feminino NãoDeclarou 170 45.57529 45.95
Feminino Branca 5317 44.15403 44.30
Feminino Preta 1292 43.60557 43.50
Masculino Branca 6804 43.66346 43.30
Masculino Amarela 257 43.58521 42.80
Masculino NãoDeclarou 328 42.24024 42.50
Feminino Amarela 314 43.18917 41.90
Feminino Parda 4517 41.79050 41.70
Masculino Parda 5883 42.09669 41.60
Masculino Preta 2190 41.67849 41.40
Masculino Indígena 95 40.77158 39.50
Feminino Indígena 71 40.02958 36.80

Da tabela acima, verifica - se que as três maiores medianas são de mulheres e que a raça indígena obteve as menores medianas.

Os gráficos a seguir, nos revelam lado a lado a distribuição das notas de homens e mulheres em cada uma das raças(cor).

Observando os gráficos, constata - se as maiores medianas das mulheres que não declararam raça, das brancas e das mulheres pretas.

dados=dbEnade2017_EdFisica_Filtrado_sem_NA

grafBoxplot1 = ggplot(dados, aes(x = SEXO, y=NT_GER, fill = SEXO)) + 
  geom_boxplot()+
  ggtitle("Boxplot da Nota por RAÇA e GÊNERO" )+
  ylab("NOTAS") +
  xlab("")+
  facet_grid(~RACA)+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

ggplotly(grafBoxplot1)

Quando adcionamos a variável REGIAO na nossa análise, vemos que mesmo a região NORDESTE sendo a 3ª região em número de inscritos, ela teve as 5 maiores medianas entre todas as demais.

Ressalta - se, que os indígenas nordestinos obtiveram a maior de todas, quase 10% acima dos nordestinos brancos, que ficaram em 3º lugar.

Cabe destacar, que as menores medianas são de indígenas da macro região Centro-Sul.

dbRegiaoRacaSexo = dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select (NT_GER, RACA, SEXO, REGIAO) %>%
  group_by(REGIAO, SEXO, RACA) %>%
  summarise(QUANTIDADE = n(),
            MEDIA = mean(NT_GER, na.rm = T),
            MEDIANA = median(NT_GER)) %>%
  arrange(desc(MEDIANA))

dbRegiaoRacaSexo %>% kbl %>% kable_material_dark(full_width = FALSE)
REGIAO SEXO RACA QUANTIDADE MEDIA MEDIANA
Nordeste Masculino Indígena 15 48.05333 50.00
Nordeste Feminino NãoDeclarou 42 49.14048 49.95
Nordeste Masculino Branca 577 45.86274 46.40
Nordeste Masculino Amarela 52 45.27500 46.10
Nordeste Feminino Indígena 14 43.29286 45.60
Sudeste Feminino NãoDeclarou 69 46.15217 45.40
Norte Masculino Amarela 22 41.70455 45.15
Nordeste Feminino Preta 341 45.18299 45.10
Sudeste Feminino Branca 2655 44.89917 45.10
Nordeste Masculino Parda 1239 44.05254 44.50
Centro-Oeste Masculino Amarela 23 44.57391 43.90
Centro-Oeste Masculino Branca 381 44.57375 43.90
Nordeste Feminino Branca 389 43.24010 43.60
Nordeste Masculino Preta 506 44.38103 43.60
Sudeste Masculino Branca 3485 43.75822 43.60
Sul Feminino Branca 1851 43.57023 43.60
Norte Feminino Preta 72 42.08889 43.60
Sudeste Feminino Preta 612 43.69673 43.50
Nordeste Masculino NãoDeclarou 52 42.60000 43.35
Sudeste Feminino Amarela 128 43.48750 43.30
Nordeste Feminino Amarela 78 44.31923 43.20
Centro-Oeste Feminino Amarela 38 44.22105 43.10
Centro-Oeste Masculino Parda 491 43.52200 43.00
Sudeste Masculino Amarela 120 44.19250 42.95
Sudeste Masculino NãoDeclarou 162 43.39877 42.80
Sul Masculino NãoDeclarou 72 40.53333 42.75
Centro-Oeste Feminino Parda 399 43.66466 42.70
Centro-Oeste Masculino Preta 177 43.06554 42.70
Centro-Oeste Feminino Branca 272 43.07132 42.60
Sudeste Feminino Parda 1705 42.28979 42.40
Sudeste Masculino Parda 2361 42.84824 42.40
Nordeste Feminino Parda 1106 42.46790 42.30
Centro-Oeste Feminino Indígena 5 44.60000 42.10
Sul Masculino Branca 2131 42.94228 42.10
Norte Feminino NãoDeclarou 13 41.02308 41.80
Norte Feminino Parda 537 41.94823 41.80
Sul Feminino NãoDeclarou 35 43.10000 41.80
Norte Masculino NãoDeclarou 20 41.23500 41.75
Centro-Oeste Feminino Preta 96 43.32812 41.70
Norte Feminino Amarela 26 42.06154 41.60
Norte Masculino Parda 708 41.70904 41.55
Norte Feminino Branca 150 42.50267 41.45
Sudeste Masculino Indígena 45 41.72000 41.20
Sul Feminino Preta 171 40.92807 40.90
Sudeste Masculino Preta 1048 41.15372 40.75
Norte Masculino Preta 153 41.17320 40.70
Norte Masculino Branca 230 41.88435 39.95
Sul Masculino Amarela 40 40.03250 39.85
Norte Feminino Indígena 7 43.87143 39.60
Sul Masculino Indígena 12 38.47500 39.25
Centro-Oeste Masculino NãoDeclarou 22 39.35909 38.30
Sul Masculino Preta 306 38.45719 37.80
Sul Feminino Parda 770 38.63078 37.65
Norte Masculino Indígena 14 37.37857 37.25
Sul Masculino Parda 1084 37.83183 36.95
Centro-Oeste Feminino NãoDeclarou 11 41.60000 36.50
Sul Feminino Amarela 44 40.09318 36.05
Sul Feminino Indígena 19 37.92632 35.60
Sudeste Feminino Indígena 26 37.89615 35.20
Centro-Oeste Masculino Indígena 9 32.23333 30.70

Quando observamos apenas a relação entre REGIÃO e GÊNERO, verifica - se que os homens do Nordeste e as mulheres do Sudeste obtiveram as melhores medianas.

Enquanto que os homens do SUL e as mulheres do NORTE tiveram as menores, entre todas.

dbregiao = dbEnade2017_EdFisica_Filtrado_sem_NA
grafBoxplot = ggplot(dbregiao, aes(x = SEXO ,y=NT_GER, fill=SEXO)) + 
  geom_boxplot() +
  ggtitle("Boxplot da Nota por REGIÃO e GÊNERO")+
  ylab("Notas") +
  xlab("") + 
  facet_grid(~REGIAO)+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

ggplotly(grafBoxplot)

Vamos analisar a distribuição das notas por turno de estudo dos alunos:

dbTurno = dbEnade2017_EdFisica_Filtrado_sem_NA %>%
  select(NT_GER, TURNO_GRAD, SEXO, REGIAO) %>%
  group_by(TURNO_GRAD, SEXO) %>%
  summarise(QUANTIDADE = n(),
            MEDIA = mean(NT_GER),
            MEDIANA = median((NT_GER))) %>%
              
  arrange(desc(MEDIANA))
  
dbTurno %>% kbl %>% kable_material_dark(full_width = FALSE)
TURNO_GRAD SEXO QUANTIDADE MEDIA MEDIANA
Integral Masculino 1807 46.66292 46.9
Integral Feminino 1687 45.75062 45.8
Vespertino Feminino 476 44.05546 45.1
Vespertino Masculino 587 44.72164 44.6
Matutino Feminino 2579 44.63633 44.4
Matutino Masculino 3161 44.00348 43.8
Noturno Feminino 6939 41.90166 41.8
Noturno Masculino 10002 41.51969 41.0

Os homens do turno Integral tiveram a melhor mediana, enquanto que os homens do turno da noite tiveram as menores.

Conclusões

Verificou - se uma maior participação de alunos com baixa faixa etária, com predomínio de alunos em relação às alunas, no entanto as maiores notas foram registradas para as mulheres.

A região Sudeste teve o maior número de alunos inscritos, com mais de 45%, embora a região Nordeste, com um pouco mais de 16% dos inscritos obteve as melhores médias.

Na região Nordeste tivemos, também, as maiores medias entre os homens indigenas, brancos e amarelos e as muilheres que não declararam sua cor e indígenas.

O curso tem uma grande identificação com os solteiros, mas os separados ou divorciados se sairam melhor nas avaliações.

Os alunos do turno da Noite obtiveram as menores avaliações, enquanto que os alunos de tempo Integral obtiveram os melhores desempenho.